package main

import "fmt"

// 函数进阶之变量作用域

// 全局变量
var num = 10

// 定义函数
func testGlobal() {
	num := 100
	// 可以再函数中使用变量
	// 1.先在函数中查找，找到了就用自己函数中的
	// 2.找不到就往外层找全局变量
	// 可以在函数中访问全局变量
	fmt.Println("全局变量", num)
}

func add(x, y int) int {
	return x + y
}

func calc(x, y int, op func(int, int) int) int {
	return op(x, y)
}

func main() {
	//testGlobal()
	// 函数是可以作为变量
	abc := testGlobal
	fmt.Printf("%T\n", abc)
	abc()

	calc(100, 200, add)
}
